package destiny.预测;

import java.util.ArrayList;
import java.util.List;

import destiny.干支局;
import destiny.术数;
import destiny.common.阴阳;
import destiny.五行.五行;
import destiny.神煞.神煞;

public abstract class 数 {
	protected 术数 术数;
	protected List<成局> 成局 = new ArrayList<成局>();
	protected List<神煞> 神煞 = new ArrayList<神煞>();

	public 数(术数 术数) {
		this.术数 = 术数;
	}

	public 术数 术数() {
		return 术数;
	}

	public List<成局> 成局() {
		return 成局;
	}

	public 成局[] 成局(干支局 局) {
		List<成局> jus = new ArrayList<成局>();
		for (成局 ju : 成局) {
			if (局.equals(ju.局()))
				jus.add(ju);
		}
		return (成局[]) jus.toArray(new 成局[jus.size()]);
	}

	public List<神煞> 神煞() {
		return 神煞;
	}

	abstract void setWeight(int weight);

	public abstract void 化(五行 ele);

	public abstract void 化(五行 ele, 阴阳 yinYang);

	public abstract String _DEBUG();
}
